<?php
namespace Home\Server;

/**
 * Class getRedisService
 * @package Home\Server
 *
 * Author: 黄盖
 * Date: 2017-2-4 16:31
 * Info: redis是否正常
 */
class getRedisService
{
    public $redis;

    function __construct()
    {
        if( class_exists( 'redis' ) )
        {
            $Redis = new \redis();

            if( $Redis ->connect( '10.23.218.220', 6379 ) )
            {
                $this ->redis = $Redis;
            }
            else
            {
                $this ->redis = false;
            }
        }
        else
        {
            $this ->redis = false;
        }
    }

/** redis 常用命令
通用
keys        : 获取key名称 (*全部, key?=key(.*)?, key*=key(.*), key[123]=key[123]?)
exists      : 查看key存在
getMultiple : 获取keys[同时]存在的数据, 不同时存在false
del         : 删除key

普通 (string, 单一数据)
set         : 保存                     key value
setex       : 带期限保存               key time value
setnx       : 没有key时,才写入key      key value
get         : 获取                     key
getSet      : 返回当前值, 并设置新值   key value
incr        : 递增key的int值
decr        : 递减key的int值

列表 (list, 有序数据)
lpush       : 向list开头追加数据       key value        (若key存在, 且不是list, 返回false)
rPush       : 向list末尾追加数据       key value
lPop        : 移除list开头数据         key
rPop        : 移除list末尾数据         key
lSize       : 获取list长度             key
lGet        : 获取指定list位置值       key index
lSet        : 替换指定list位置值       key index value  (如果不存在索引,false)
lGetRange   : 获取list区间位置值       key start end    (如果end为负数, 则匹配到倒数第几)
lRemove     : 删除一定数量list相同的值 key value count  (如果count为0,删除全部. 为负,倒序删count个)

集合 (set, 集合)
sAdd        : 向set中添加数据          key value         (存在值则false)
sRemove     : 删除Key中指定的value值   key value
sGetMembers : 获取set中所有的值        key
sSize       : 获取set数量              key
sContains   : set中是否存在某值        key value
sPop        : 随机删除set中一个值      key

sInter      : 获取多个set的交集        key1 key2 key3
sInterStore : 将多个set交集,存入新set  new_key key1 key2

sUnion      : 获取多个set的并集        key1 key2 key3
sUnionStore : 将多个set并集,存入新set  new_key key1 key2

sDiff       : 获取第一个set与其他set差集          key1 key2 key3
sDiffStore  : 将第一个set与其他set差集,存入新set  new_key key1 key2

散列 (hash, 哈希 [一维数组])
Hset        : 存入hash数据到key中      key field value
HMset       : 存入hash多条数据到key中  key Array( field => value, field => value, field => value ... )
Hget        : 获取key中hash的field值   key field
HMget       : 获取hash多条的field值    key field field..
HgetAll     : 获取key中所有的hash值    key
Hexists     : 查看hash中field是否存在  key field
Hdel        : 删除hash中某个field      key field
Hlen        : 获取hash的长度           key
Hkeys       : 获取hash中所有的field    key
Hvals       : 获取hash中所有的value    key
Hincrby     : 为hash某field值数学计算  key field int   ( key  count  1/-1/2/-2 )

 ******

有序集合 (zset, 集合)
zadd             : 向zset中添加数据       key score member (存在则替换score, 例 key 3 'baidu' 5 'google')
zscore           : 获取zset的score值      key member
zrem             : 从zset删除指定成员     key member
zincrby          : 递增zset的int值        key int member
zrange           : 获取升序排序的区间值   key start end
zrevrange        : 获取降序排序的区间值   key start end
zrangebyscore    : 获取>=min <=max的值    key min max
zremrangebyscore : 删除>=min <=max的值    key min max
zcard            : 获取zset的key数量      key

其他
randomkey   : 获取一个随机key
type        : 获取key的类型    ( 1 string, 2 set[集合], 3 list[列表], 4 zset[有序集合], 5 hash[哈希表], none )
ttl         : 获取key存活时间, 未设置则 -1
expire      : 设置key存活时间, 已设置时间则无效
persist     : 移除key存活时间  (测试无效)
rename      : 更改key的名字,新键如果存在将被覆盖
renamenx    : 更改key的名字，如果名字存在则更改失败
dbsize      : 获取keys的总量
flushdb     : 清空当前数据库中的所有键
flushall    : 清空所有数据库中的所有键

 */
}
?>